package com.flying.classmember.field;

/**
 * 测试类的成员-----属性
 */


public class FeildDemo {
    public static void main(String[] args) {

       int[] x= {1,2,3,4,5};

       String name="liu";
        Person p1 = new Person();

        p1.setName("zhangsan");
        p1.setAge(13);


        /**
         * 是对具有相同特征和行为的事(对象)的统称
         * 类里可以定义属性(变量)和行为(方法)
         * 面向对象的核心，根据事物的特征和行为抽象并定义一个类，然后通过类创建对象
         * 使用类创建出来的对象，就会有这个类定义的属性，可以执行类里定义的方法
         */

        /*
        * 类里方法外定义的属性称为成员变量，方法里定义的变量称为局部变量
        局部变量和成员变量的区别：
        (1）定义的位置不同
            局部变量在方法内部定义；成员变量在类里方法外定义
        (2）初始化值不同
            局部变量不会设置默认值，使用哪之前需要手动设置默认值
            成员变量有默认值
            byte/short/int/long 0
            float/double 0.0
            boolean false
            char空字符
            引用数据类型 null
        (3)1作用域不同(变量能够访问的区域范围，java里作用域分为全局作用域和局部作用域)
            局部变量只能在声明这个变量的方法内部访问
            成员变量在本类里都能访问
        （4）生命周期不同
            局部变量在方法调用时创建，在方法执行完后销毁
            成员变量随着对象创建而创建，随着对象销毁而销毁
        （5）存储的空间不同：
            局部变量存储在栈区，成员变量存储在堆区
                * */


    }
}


class Person {
    private String name;
    private int age;
    private String gender;

    private double height;
    private double weight;

    public Person() {
    }

    public Person(String name, int age, String gender, double height, double weight) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.height = height;
        this.weight = weight;
    }



    public void eat(String food) {
        System.out.println(this.name + "在吃 " + food);

    }



    public static void drink(Person p){
        System.out.println();
    }




    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }


}